import Model.*;


public class main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		/**
		 * Decorator test 1
		 */
		Vereniging v = new Vereniging("Twente-Sparta", new Locatie("Schiphollaan", "Enschede", 152));
		Team t = new Team(1);
		t.setTeamNummer(5);
		t.setVereniging(v);
		
		Persoon decoratedPersoon = new Scheidsrechter(new SimplePersoon("Andre de Vries", 568549, "Lindelaan 25"));
		Trainer trainer = new Trainer(decoratedPersoon);
		Medewerker medewerker = new Medewerker(trainer, 2000);
		trainer.setTeam(t);
		trainer.setNiveau(5);

		System.out.println(medewerker.getBeschrijving());
		/**
		 * Decorator test 2
		 */
		Team t2 = new Team(1);
		t.setTeamNummer(8);
		t.setVereniging(v);

		Persoon decoratedPersoon2 = new SimplePersoon("Jan Janssen", 521549, "St Jamesstraat 39");
		Lid l = new Lid(decoratedPersoon2);
		l.setVereniging(v);
		System.out.println(l.getBeschrijving());
		
		/** 
		 * Memento test
		 */
		
		Wedstrijd w = new Wedstrijd();
		w.setTeamA(t);
		w.setTeamB(t2);
		w.setDatum("01-01-2003");
		System.out.println(w.getDatum());
		//Memento m = w.save();
		w.setDatum("02-02-2010");
		System.out.println(w.getDatum());
		//w.printOldDate(m);
		
	}
	
	public static void testBuilder() {
		Sportbond sb = Sportbond.getInstance();
		LandelijkeDivisieBuilder ldb = new LandelijkeDivisieBuilder();
		sb.setDivisieBuilder(ldb);
		sb.constructDivisie("a");
		
		Divisie d = sb.getDivisie();
		System.out.println(d.toString());
		
		RegionaleDivisieBuilder rdb = new RegionaleDivisieBuilder();
		sb.setDivisieBuilder(rdb);
		sb.constructDivisie("a");
		
		d = sb.getDivisie();
		System.out.println(d.toString());		
	}
	
	public static void testPrototype(){
		Uitslag u = new Uitslag(1, 0, 0, 0, new Team(2), new Team(2));
		Uitslag u2 = null;
		try {
			u2 = u.clone();
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		u2.setAantalGeleKaarten(10);
		System.out.println(u.toString());
		System.out.println(u2.toString());		
	}
	
	public static void testFactoryMethod(){
		Uitslag u = new Uitslag(1, 0, 0, 0, new Team(2), new Team(2));
		Uitslag u2 = new Uitslag(1, 0, 0, 0, new Team(1), new Team(1));
		u.geefVoorspelling(u);
		u2.geefVoorspelling(u2);
	}

}
